/*******************************************************************************
 *                                    ZLG
 *                         ----------------------------
 *                         innovating embedded platform
 *
 * Copyright (c) 2001-present Guangzhou ZHIYUAN Electronics Co., Ltd.
 * All rights reserved.
 *
 * Contact information:
 * web site:    https://www.zlg.cn
 *******************************************************************************/
#ifndef __HPM6E00_USB_H__
#define __HPM6E00_USB_H__

#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus*/
#include "core/include/hpm6e00_regs_usb.h"
#include "common/hpm_errno.h"
#include "common/hpm_common.h"
#include <stdint.h>
#include <string.h>

#define USB_EP_TYPE_CTRL            0x00     /* 控制端点 */
#define USB_EP_TYPE_ISO             0x01     /* 等时端点 */
#define USB_EP_TYPE_BULK            0x02     /* 批量端点 */
#define USB_EP_TYPE_INT             0x03     /* 中断端点 */

/**
 * \brief USB 寄存器检查函数
 *
 * \param[in] p_usb_reg 相关 USB 寄存器
 *
 * \retval 成功返回 0
 */
int usb_reg_chk(hpm_usb_reg_t *p_usb_reg);
/**
 * \brief 初始化 USB PHY
 *
 * \param[in] p_usb_reg 相关 USB 寄存器
 *
 * \retval 成功返回 0
 */
int usb_phy_init(hpm_usb_reg_t *p_usb_reg);
/**
 * \brief USB PHY 反初始化
 *
 * \param[in] p_usb_reg 相关 USB 寄存器
 *
 * \retval 成功返回 0
 */
int usb_phy_deinit(hpm_usb_reg_t *p_usb_reg);
#ifdef __cplusplus
}
#endif  /* __cplusplus  */
#endif


